ऑटो इंक्रीमेंट फ़ील्ड क्या है?
जब तालिका में कोई नया रिकॉर्ड डाला जाता है तो ऑटो-इंक्रीमेंट एक अद्वितीय संख्या को स्वचालित रूप से उत्पन्न करने की अनुमति देता है।
अक्सर यह प्राथमिक कुंजी फ़ील्ड होती है, जो हर बार नया रिकॉर्ड डालने पर स्वचालित रूप से बन जाती है।
महत्वपूर्ण नोट:
ऑटो इंक्रीमेंट डेटाबेस में अद्वितीय पहचानकर्ताओं के स्वचालित निर्माण को सक्षम बनाता है, यह सुनिश्चित करता है कि उपयोगकर्ताओं को मैन्युअल रूप से मान दर्ज करने की आवश्यकता नहीं है।
MySQL के लिए सिंटेक्स
निम्नलिखित SQL कथन "व्यक्ति" तालिका में "व्यक्तिगत" कॉलम को ऑटो-इंक्रीमेंट प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
MySQL CREATE TABLE:
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
MySQL ऑटो-इंक्रीमेंट सुविधा को सक्षम करने के लिए AUTO_INCREMENT कीवर्ड का उपयोग करता है।
डिफ़ॉल्ट रूप से, AUTO_INCREMENT का प्रारंभिक मान 1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 बढ़ता है।
AUTO_INCREMENT सरणी को किसी भिन्न मान से प्रारंभ करने की अनुमति देने के लिए, निम्न SQL कथन का उपयोग करें:
MySQL AUTO_INCREMENT आरंभीकरण परिवर्तन:
ALTER TABLE Persons AUTO_INCREMENT=100;
MySQL में एक नया रिकॉर्ड सम्मिलित करना
"व्यक्ति" तालिका में एक नया रिकॉर्ड सम्मिलित करने के लिए, हमें "व्यक्ति" कॉलम के लिए कोई मान निर्दिष्ट करने की आवश्यकता नहीं है (एक अद्वितीय मान स्वचालित रूप से जोड़ा जाता है):
MySQL INSERT:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
SQL सर्वर के लिए सिंटेक्स
निम्नलिखित SQL कथन "व्यक्ति" तालिका में "व्यक्तिगत" कॉलम को ऑटो-इंक्रीमेंट प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
SQL Server CREATE TABLE:
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS SQL सर्वर ऑटो-इंक्रीमेंट सुविधा को लागू करने के लिए IDENTITY कीवर्ड का उपयोग करता है।
उपरोक्त उदाहरण में, IDENTITY का प्रारंभिक मान 1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 बढ़ता है।
सहायता नोट:
यह निर्दिष्ट करने के लिए इसे पहचान(10,5) में बदलें कि "पर्सनिड" कॉलम का मान 10 से शुरू होना चाहिए और 5 से बढ़ना चाहिए।
SQL सर्वर में एक नया रिकॉर्ड सम्मिलित करना
SQL Server INSERT:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
पहुंच के लिए सिंटैक्स
निम्नलिखित SQL कथन "व्यक्ति" तालिका में "व्यक्तिगत" कॉलम को ऑटो-इंक्रीमेंट प्राथमिक कुंजी फ़ील्ड के रूप में परिभाषित करता है:
MS Access CREATE TABLE:
CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access ऑटो-इंक्रीमेंट सुविधा को लागू करने के लिए AUTOINCREMENT कीवर्ड का उपयोग करता है।
डिफ़ॉल्ट रूप से, AUTOINCREMENT का प्रारंभिक मान 1 है, और यह प्रत्येक नए रिकॉर्ड के लिए 1 बढ़ता है।
सहायता नोट:
यह निर्दिष्ट करने के लिए कि "पर्सनिड" कॉलम का मान 10 से शुरू होना चाहिए और 5 से बढ़ना चाहिए, ऑटोइन्क्रीमेंट को ऑटोइंक्रीमेंट(10,5) में बदलें।
Oracle के लिए सिंटैक्स
Oracle में कोड थोड़ा अधिक जटिल है।
आपको अनुक्रम ऑब्जेक्ट के साथ एक ऑटो-इंक्रीमेंट फ़ील्ड बनाना होगा (यह ऑब्जेक्ट संख्याओं का अनुक्रम बनाता है)।
निम्नलिखित क्रिएट सीक्वेंस सिंटैक्स का उपयोग करें:
Oracle अनुक्रम बनाना:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
उपरोक्त कोड seq_person नामक एक सरणी ऑब्जेक्ट बनाता है जो 1 से शुरू होता है और 1 से बढ़ता है। यह दक्षता के लिए 10 मानों तक कैश करता है।
Oracle में एक नया रिकॉर्ड सम्मिलित करना
"व्यक्ति" तालिका में एक नया रिकॉर्ड डालने के लिए, हमें नेक्स्टवल फ़ंक्शन का उपयोग करने की आवश्यकता है (यह फ़ंक्शन seq_person सरणी से अगला मान पुनर्प्राप्त करता है):
Oracle INSERT:
INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');
डेटाबेस तुलना
MySQL
- महत्वपूर्ण शब्द: AUTO_INCREMENT
- सिंटेक्स: column_name INT AUTO_INCREMENT
- परिवर्तन प्रारंभ करें: ALTER TABLE table AUTO_INCREMENT=value
- INSERT:मूल्य का उल्लेख नहीं है
SQL Server
- महत्वपूर्ण शब्द: IDENTITY
- सिंटेक्स: IDENTITY(start, increment)
- परिवर्तन प्रारंभ करें:सीधे पहचान में
- INSERT:मूल्य का उल्लेख नहीं है
Oracle
- महत्वपूर्ण शब्द: SEQUENCE + NEXTVAL
- सिंटेक्स: CREATE SEQUENCE
- परिवर्तन प्रारंभ करें:सीधे अनुक्रम में
- INSERT: seq_name.nextval
शैली के उदाहरण
उपयोगकर्ता तालिका
एक स्वतः उत्पन्न उपयोगकर्ता आईडी
-- MySQL
CREATE TABLE Users (
UserID INT AUTO_INCREMENT PRIMARY KEY,
Username VARCHAR(50) NOT NULL,
Email VARCHAR(100)
);
INSERT INTO Users (Username, Email)
VALUES ('john_doe', 'john@example.com');
आदेशों की तालिका
स्वचालित रूप से जनरेट किया गया ऑर्डर नंबर
-- SQL Server
CREATE TABLE Orders (
OrderID INT IDENTITY(1000,1) PRIMARY KEY,
CustomerID INT NOT NULL,
OrderDate DATE DEFAULT GETDATE()
);
INSERT INTO Orders (CustomerID)
VALUES (12345);
उत्पादों की तालिका
स्वचालित रूप से उत्पन्न उत्पाद आईडी
-- Oracle
CREATE SEQUENCE seq_product START WITH 500;
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(255)
);
INSERT INTO Products (ProductID, ProductName)
VALUES (seq_product.nextval, 'Laptop');
लाभ और अवधारणाएँ
फ़ायदे
- स्वचालित रूप से अद्वितीय पहचानकर्ता उत्पन्न करता है
- उपयोगकर्ता इनपुट त्रुटियों को कम करता है
- डेटा अखंडता बनाए रखता है
- एप्लिकेशन कोडिंग को सरल बनाता है
- स्वचालित पहचान प्रबंधन
टिप्पणियाँ
- डेटाबेस के बीच स्विच करते समय समस्याएँ
- विभिन्न डेटाबेस के लिए अलग-अलग सिंटैक्स
- हटाए गए पंजीकरणों के लिए रिक्तियां हो सकती हैं
- अधिकतम मूल्य सीमाएँ हो सकती हैं
- Oracle में अतिरिक्त कतार प्रबंधन की आवश्यकता है